﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using BusinessObjects.Person;

namespace DataObjects.Interface.Person
{
    public interface IAccountingObjectDao
    {
        List<AccountingObject> GetAccountingObjects();

        List<AccountingObject> GetAccountingObjectsByBranch(string restaurantId);

        List<AccountingObject> GetAccountingObjectsByPage(int currentPage);

        List<AccountingObject> GetAccountingObjectsByPageAndBranch(int currentPage, string restaurantId);

        List<AccountingObject> GetAccountingObjectsByPageAndBranch(int currentPage, string restaurantId, bool isCustomer, bool isVendor, bool isEmployee);

        List<AccountingObject> GetAccountingObjectsActiveByBranch(bool isActive, string restaurantId, bool isCustomer, bool isVendor, bool isEmployee);

        List<AccountingObject> GetAccountingObjectsByPageAndBranch(int currentPage, string restaurantId, string accountingObjectCategoryId);

        AccountingObject GetAccountingObject(string restaurantId, string accountingObjectId);

        int GetTotalPage();

        int GetTotalPage(bool isCustomer, bool isVendor, bool isEmployee);

        int GetTotalPageByBranch(string restaurantId, bool isCustomer, bool isVendor, bool isEmployee);

        int GetTotalPageByCategory(string accountingObjectCategoryId);

        int GetCountAcountingObjectsByCategory(string accountingObjectCategoryId);

        void InsertAccountingObject(AccountingObject accountingObject);

        void UpdateAccountingObject(AccountingObject accountingObject);

        void DeleteAccountingObject(AccountingObject accountingObject);
    }
}
